#ifndef __STATE_MANAGER_HH__
#define __STATE_MANAGER_HH__

#include "Common/AutoSingleton.hh"

namespace Managers
{

/**
 * @brief StateManager - one of the framework managers. Handles state of the property managament.
 * //TODO add more specific description
 */
template< typename BaseObject >
class StateManager : public Common::AutoSingleton< StateManager< BaseObject> >
{
	public:
		/**
		 * @brief Registers the property of a given type ContainerT and member type MemberT
		 * inside the manager to properly solve the share issue.
		 */
		template< typename ContainerT, typename MemberT, const char* memberName >
		void registerProperty( MemberT ContainerT::*aMemPtr )
		{
			( void ) aMemPtr; //just for no warning
		}


};

} // namespace managers

#endif
